package ejb.cbm.admin.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="LOTEARCHIVO")
public class LoteArchivoEntity  implements java.io.Serializable {
	
    // Fields    
     private Long idlote;
     private ArchivoEntity archivo;
     private String nombrearchivo;
     private Date fechainicio;
     private Date fechafin;
     private Long estado;
     private Long cantidadregistros;
     private Long cantidadcorrectos;
     private Long cantidaderrados;
     //private String notificado;
     private String usuarioregistro;
     private Date fecharegistro;
     private String usuariomodificacion;
     private Date fechamodificacion;

    // Constructors

    /** default constructor */
    public LoteArchivoEntity() {
    }

	/** minimal constructor */
    public LoteArchivoEntity(Long idlote, ArchivoEntity archivo, String nombrearchivo, Long estado, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.idlote = idlote;
        this.archivo = archivo;
        this.nombrearchivo = nombrearchivo;
        this.estado = estado;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }
    
    /** full constructor */
    public LoteArchivoEntity(Long idlote, ArchivoEntity archivo, String nombrearchivo, Date fechainicio, Date fechafin, Long estado, Long cantidadregistros, Long cantidadcorrectos, Long cantidaderrados, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.idlote = idlote;
        this.archivo = archivo;
        this.nombrearchivo = nombrearchivo;
        this.fechainicio = fechainicio;
        this.fechafin = fechafin;
        this.estado = estado;
        this.cantidadregistros = cantidadregistros;
        this.cantidadcorrectos = cantidadcorrectos;
        this.cantidaderrados = cantidaderrados;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }

   
    // Property accessors
    @Id
    @Column(name="IDLOTE", unique=true, nullable=false, insertable=true, updatable=true, precision=10, scale=0)
    public Long getIdlote() {
        return this.idlote;
    }
    
    public void setIdlote(Long idlote) {
        this.idlote = idlote;
    }
    
    @ManyToOne(cascade={},fetch=FetchType.LAZY)
    @JoinColumn(name="CODIGOARCHIVO", unique=false, nullable=false, insertable=true, updatable=true)
    public ArchivoEntity getArchivo() {
        return this.archivo;
    }
    
    public void setArchivo(ArchivoEntity archivo) {
        this.archivo = archivo;
    }
    
    @Column(name="NOMBREARCHIVO", unique=false, nullable=false, insertable=true, updatable=true, length=50)
    public String getNombrearchivo() {
        return this.nombrearchivo;
    }
    
    public void setNombrearchivo(String nombrearchivo) {
        this.nombrearchivo = nombrearchivo;
    }
    
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="FECHAINICIO", unique=false, nullable=true, insertable=true, updatable=true, length=7)
    public Date getFechainicio() {
        return this.fechainicio;
    }
    
    public void setFechainicio(Date fechainicio) {
        this.fechainicio = fechainicio;
    }
    
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="FECHAFIN", unique=false, nullable=true, insertable=true, updatable=true, length=7)
    public Date getFechafin() {
        return this.fechafin;
    }
    
    public void setFechafin(Date fechafin) {
        this.fechafin = fechafin;
    }
    
    @Column(name="ESTADO", unique=false, nullable=false, insertable=true, updatable=true, precision=1, scale=0)
    public Long getEstado() {
        return this.estado;
    }
    
    public void setEstado(Long estado) {
        this.estado = estado;
    }
    
    @Column(name="CANTIDADREGISTROS", unique=false, nullable=true, insertable=true, updatable=true, precision=8, scale=0)
    public Long getCantidadregistros() {
        return this.cantidadregistros;
    }
    
    public void setCantidadregistros(Long cantidadregistros) {
        this.cantidadregistros = cantidadregistros;
    }
    
    @Column(name="CANTIDADCORRECTOS", unique=false, nullable=true, insertable=true, updatable=true, precision=8, scale=0)
    public Long getCantidadcorrectos() {
        return this.cantidadcorrectos;
    }
    
    public void setCantidadcorrectos(Long cantidadcorrectos) {
        this.cantidadcorrectos = cantidadcorrectos;
    }
    
    @Column(name="CANTIDADERRADOS", unique=false, nullable=true, insertable=true, updatable=true, precision=8, scale=0)
    public Long getCantidaderrados() {
        return this.cantidaderrados;
    }
    
    public void setCantidaderrados(Long cantidaderrados) {
        this.cantidaderrados = cantidaderrados;
    }
    
    @Column(name="USUARIOREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuarioregistro() {
        return this.usuarioregistro;
    }
    
    public void setUsuarioregistro(String usuarioregistro) {
        this.usuarioregistro = usuarioregistro;
    }
    
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFecharegistro() {
        return this.fecharegistro;
    }
    
    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }
    
    @Column(name="USUARIOMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuariomodificacion() {
        return this.usuariomodificacion;
    }
    
    public void setUsuariomodificacion(String usuariomodificacion) {
        this.usuariomodificacion = usuariomodificacion;
    }
    
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFechamodificacion() {
        return this.fechamodificacion;
    }
    
    public void setFechamodificacion(Date fechamodificacion) {
        this.fechamodificacion = fechamodificacion;
    }

    /*@Column(name="NOTIFICADO", unique=false, nullable=false, insertable=true, updatable=true, length=2)
	public String getNotificado() {
		return notificado;
	}

	public void setNotificado(String notificado) {
		this.notificado = notificado;
	}*/
}